package com.icss.flow.controller;

import com.icss.flow.pojo.dto.TMetaFieldCreateDto;
import com.icss.flow.pojo.dto.TMetaFieldUpdateDto;

import com.icss.flow.service.TMetaFieldService;
import org.dromara.common.core.domain.R;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;

import java.util.List;


/**
 * 元数据实体字段表(TMetaField)表控制层
 *
 * @author makejava
 * @since 2024-01-30 13:05:57
 */
@RestController
@RequestMapping("tMetaField")
public class TMetaFieldController {
    /**
     * 服务对象
     */
    @Autowired
    private TMetaFieldService tMetaFieldService;


    /**
     * 新增实体字段
     *
     * @param entityCode          实体code
     * @param tMetaFieldCreateDto 实体dto
     * @return
     */
    @PostMapping("createMetaField")
    public R<?> createMetaField(@RequestParam Integer entityCode, @RequestBody TMetaFieldCreateDto tMetaFieldCreateDto) {
        if (tMetaFieldService.createMetaField(entityCode, tMetaFieldCreateDto)) {
            return R.ok("新增成功");
        }
        return R.fail("新增失败");
    }

    /***
     * 修改实体字段
     * @param tMetaFieldUpdateDto
     * @return
     */
    @PostMapping("updateMetaField")
    public R<?> updateMetaField(@RequestBody TMetaFieldUpdateDto tMetaFieldUpdateDto) {
        if (tMetaFieldService.updateMetaField(tMetaFieldUpdateDto)) {
            return R.ok("修改成功");
        }
        return R.fail("修改失败");
    }


    /**
     * 通过主键查询单条数据
     *
     * @param entityCode 主键
     * @return 单条数据
     */
    @GetMapping("primaryKeyById/{entityCode}")
    public R<?> queryFieldById(@PathVariable("entityCode") Integer entityCode) {
        return R.ok(this.tMetaFieldService.queryFieldById(entityCode));
    }

    /***
     * 获取实体字段列表
     * @param entityCode 实体code
     */
    @GetMapping("getMetaFieldList")
    public R<?> getMetaFieldList(@RequestParam Integer entityCode) {
        return R.ok(tMetaFieldService.getMetaFieldList(entityCode));
    }

    /***
     * 删除实体字段
     * @param autoId
     * @return
     */
    @DeleteMapping("deleteMetaField")
    public R<?> deleteMetaField(@RequestParam Integer autoId) {
        if (tMetaFieldService.deleteMetaField(autoId)) {
            return R.ok("删除成功");
        }
        return R.fail("删除失败");
    }
}

